定義 一個變量 意味著告訴編譯器變量存在哪裏以及佔了多少儲存空間。
變量指定一種數據類型,可以包含一個或多個該類型的變量。
type variable_list;
ex.
int i, j, k;
char c, ch;
float f, salary;
double d;
變量可以在聲明(declaration)時初始化
type variable_name = value;
ex.
extern int d = 3, f = 5; // declaration of d and f.
int d = 3, f = 5; // definition and initializing d and f.
byte z = 22; // definition and initializes z.
char x = 'x'; // the variable x has the value 'x'.
對於沒有初始化的定義,具有靜態儲存持續時間(static storage duration)的變量為 NULL
,而其他變量的初始值則為未定義(undefined)
。
變量聲明:向編譯器保證存在有一個具有一定類型及名稱的變量,以便編譯器進一步編譯,而無需提供該變量的完整訊息。
變量聲明 只有在編譯時才有意義,編譯器在程序鏈接時才需要實際的聲明。
在使用多個文件時而只在其中一個文件定義變數時,變量聲明很有用。可以在任何地方使用extern
聲明變量。
雖然可以聲明一個變量多次,但它只會被定義一次。
#import <Foundation/Foundation.h>
// 聲明變量
extern int a, b;
extern int c;
extern float f;
int main () {
// 定義變量
int a, b;
int c;
float f;
// 初始化
a = 10;
b = 20;
c = a + b;
NSLog(@"value of c : %d \n", c);
f = 70.0/3.0;
NSLog(@"value of f : %f \n", f);
return 0;
}
相同的概念可以用在 function 聲明,在聲明時提供名稱,實際定義可以在任何地方拿到。
// 聲明function
int func(void);
int main() {
// function call
int i = func();
}
// 定義function
int func() {
return 0;
}
常量是指為固定值,在執行過程中不會改變。這固定的值也被稱為文字(literals)。
常量可以是任何基本的類型,ex. integer
, floating
, character
, string literal
, enumeration
。
整數文字可以是十進,八進或十六進位的常量。
前綴指定基本或基數:0x或0X為十六進位,八進位為0。
整數文字也可以有”一個“後綴,即U和L的組合。後綴可以是大寫或小寫,並且可以在任何順序。
212 /* Legal */
215u /* Legal */
0xFeeL /* Legal */
078 /* Illegal: 八進位沒有8 */
032UU /* Illegal: 不能重複後綴 */
以下為其他類型的整數文字例子:
85 /* decimal(十進位) */
0213 /* octal(八進位) */
0x4b /* hexadecimal(十六進位) */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
字符在單引號中,ex. 'X'
,可以儲存在簡單的 char 類型。
字符可以是:
'x'
)'\t'
):有特殊意義'\u02C0'
)轉義序列:
轉義序列 (前面都要再加個斜線) | 意思 |
---|---|
|\文字 | |
' | '文字 |
" | "文字 |
? | ?文字 |
\a | 警告or鐘 |
\b | Backspace |
\f | 換頁 |
\n | 換行 |
\r | return |
\t | 水平tab |
\v | 垂直tab |
\ooo | ㄧ到三位數的八進位 |
\xhh | 一到多位的十六進位數 |
文字在雙引號中,字串可以包含字符、轉義序列、通用字符。
在 C 有兩種簡單的方法:
#define
預處理.const
關鍵字.使用#define預處理
定義一個常數
#define identifier value
ex.
#import <Foundation/Foundation.h>
#define HEIGHT 30
#define WIDTH 5
int main() {
int area;
area = HEIGHT * WIDTH;
NSLog(@"面積: %d",area);
return 0;
}
2021-09-09 01:26:38.271407+0800 TestOC[65072:1959114] 面積: 150
const修飾符
可以保護變量不被修改。
可以使用const
來聲明常量的前綴與特定類型如下:
const type variable = value;
ex.
#import <Foundation/Foundation.h>
int main() {
const int HEIGHT = 30;
const int WIDTH = 5;
int area;
area = HEIGHT * WIDTH;
NSLog(@"面積: %d",area);
return 0;
}
2021-09-09 01:30:34.893086+0800 TestOC[65168:1964891] 面積: 150